
export default {
  /**
   *获取从url传来的参数  html适用 适用于多个参数
   * @param paramNames
   * 返回参数 是json
   */
  getHtmlUrlParam (paramNames) {
    let resultParam = {}
    let r = window.location.search.substr(1)
    for (let i = 0; i < paramNames.length; i++) {
      let name = paramNames[i]
      let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
      let urlParam = r.match(reg)
      let param
      if (urlParam) {
        param = decodeURI(urlParam[2])
      }
      resultParam[name] = param
    }
    return resultParam
  },
  /****
   * 获取屏幕适配rem
   */
  getInitFontSize () {
    let htmlwidth = document.documentElement.clientWidth || document.body.clientWidth // 浏览器兼容
    // console.log('屏幕宽度：' + htmlwidth) // 1920

    // 获得html DOM元素
    let htmlDom = document.getElementsByTagName('html')[0]

    // 给DOM元素设置样式
    htmlDom.style.fontSize = htmlwidth / 120 + 'px'
  },
  /**
   * 获取当前时间
   * @param type 格式 可以满足 'YYYY-MM-DD'/'YYYYMMDD'/'YYYY/MM/DD'/'YYYY年MM月DD年' 同理 年月/年月日
   */
  getNowData (type) {
    let nowData = new Date()
    let year = nowData.getFullYear()
    let month = nowData.getMonth() + 1
    let date = nowData.getDate()
    month = (month < 10) ? '0' + month : month
    date = (date < 10) ? '0' + date : date
    let regY = type.substring(type.lastIndexOf('Y') + 1, type.lastIndexOf('Y') + 2)
    let regM = type.substring(type.lastIndexOf('M') + 1, type.lastIndexOf('M') + 2)
    let regD = type.substring(type.lastIndexOf('D') + 1, type.lastIndexOf('D') + 2)
    regY = regY == 'M' ? '' : regY
    regM = regM == 'D' ? '' : regM
    let result = ''
    if (type.indexOf('Y') >= 0) {
      result += year + regY
    }
    if (type.indexOf('M') >= 0) {
      result += month + regM
    }
    if (type.indexOf('D') >= 0) {
      result += date + regD
    }
    return result
  },
  /**
   * 数组是否包含某个元素
   * @param arr  数组
   * @param value  元素
   * @returns {*}
   */
  isContainArr (arr, value) {
    let contains = (() =>
      Array.prototype.includes
        ? (arr, value) => arr.includes(value)
        : (arr, value) => arr.some(el => el === value)
    )()
    return contains(arr, value)
  },
  /**
   *  获取两个数的最大公约数
   * @param m 正整数
   * @param n 正整数
   * @returns {*}
   */
  getMaxDivisor (m, n) {
    let r = 0
    r = m % n
    m = n
    n = r
    if (r == 0) { // 如果r等于0,说明最大公约数是那个值小的数
      return m // n的值赋值给m后，返回值为m;
    }
    return this.getMaxDivisor(m, n)// 否则继续运行函数
  },
  /**
   * 获取最小公倍数
   * @param a
   * @param b
   * @returns {number}
   */
  getMinGbs (a, b) {
    return (a * b) / this.getMaxDivisor(a, b)
  },
  /**
   *  获取两个数的分数值
   * @param m 正整数
   * @param n 正整数
   * @returns {*}
   */
  getFraction (m, n) {
    let divisor = this.getMaxDivisor(m, n)
    return (m / divisor) + '/' + (n / divisor)
  }
}
